package javase2.day02.demo01;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
java.util.Iterator
 迭代：
 即Collection集合元素的通用获取方式。
 在取元素之前先要判断集合中有没有元素，如果有，就把这个元素取出来，继续在判断，
 如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
    Iterator接口的常用方法如下：
        public E next():返回迭代的下一个元素。
        public boolean hasNext():如果仍有元素可以迭代，则返回 true。
迭代器的使用步骤：
    1使用集合中的方法iterator()获取迭代器的实现类对象，使用Iterator接口接收(多态)
    2使用Iterator接口中的方法hasNext判断还有没有下一个元素
    3使用Iterator接口中的方法next取出集合的下一个元素
    注意：Iteraror接口也是有泛型的，迭代器的泛型跟着集合走。也可以不写泛型
*/
public class DemoIterator {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> coll=new ArrayList<>();
        coll.add("猪八戒");
        coll.add("唐三藏");
        coll.add("沙悟净");
        coll.add("白龙马");

        //创建迭代器对象接收,由于不知道循环多少次，所以建议使用while循环
        Iterator iterator=coll.iterator();
        while (iterator.hasNext()){
            Object e = iterator.next();
            System.out.println(e);
        }

//        for(Iterator iterator=coll.iterator();iterator.hasNext();){
//            Object e = iterator.next();
//            System.out.println(e);
//        }

    }
}
